6f7cbd2c498807214157e652785c4bd515da7471,core/src/main/java/org/jacorb/orb/Delegate.java,Delegate,request,#org.omg.CORBA.Object#String#boolean#,2238
Before Change
if (currentCtxt.containsKey (INVOCATION_KEY.INTERCEPTOR_CALL) ||
currentCtxt.containsKey (INVOCATION_KEY.SERVANT_PREINVOKE))
{
clearCurrentContext = false;
}
}
if (currentCtxt == null)
{
currentCtxt = new HashMap<INVOCATION_KEY, UtcT>();
invocationStack.push (currentCtxt);
}
UtcT requestEndTime = currentCtxt.get (INVOCATION_KEY.REQUEST_END_TIME);
UtcT replyEndTime = currentCtxt.get (INVOCATION_KEY.REPLY_END_TIME);
if (!disableClientOrbPolicies)
{
// Compute the deadlines for this request based on any absolute or
// relative timing policies that have been specified. Compute this
// now, because it is the earliest possible time, and therefore any
// relative timeouts will cover the entire invocation.
if (requestEndTime == null)
{
requestEndTime = getRequestEndTime();
final long requestTimeout = getRelativeRequestTimeout();
if ((requestTimeout > 0) || (requestEndTime != null))
{
requestEndTime = Time.earliest(Time.corbaFuture (requestTimeout), requestEndTime);
if (Time.hasPassed(requestEndTime))
{
if (clearCurrentContext)
{
clearInvocationContext();
}
throw new TIMEOUT("Request End Time exceeded prior to invocation",
2,
CompletionStatus.COMPLETED_NO);
}
}
currentCtxt.put (INVOCATION_KEY.REQUEST_END_TIME, requestEndTime);
}
else
{
if (Time.hasPassed (requestEndTime))
{
if (clearCurrentContext)
{
clearInvocationContext();
}
throw new TIMEOUT("Request End Time exceeded",
After Change
{
if (Time.hasPassed (requestEndTime))
{
clearInvocationContext();
throw new TIMEOUT("Request End Time exceeded",
2,
CompletionStatus.COMPLETED_NO);